package algo;

import org.apache.log4j.Logger;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.stream.Collectors;

/**
 * @author Ajie
 * @date 7/29/24
 * @function
 */
public class DistanceAlgoManager {
    private static final Logger logger = Logger.getLogger(DistanceAlgoManager.class);

    private static final String TAG = "DistanceAlgoManager";

    public static void main(String[] args) throws IOException {
        System.out.println("DistanceAlgoManager:main: start");
        System.out.println("DistanceAlgoManager:main:"+(-1/10.0));//-0.1
        System.out.println("DistanceAlgoManager:main:"+(int)(-1/10.0));//0
        List<OriginData> originDataList = new ArrayList<>();

        initOriginData(originDataList);

//        testDataTime(originDataList);
//        testDataFlow(originDataList);
        testDataCorrect(originDataList);
    }

    private static final DistanceAlgoManager ourInstance = new DistanceAlgoManager();
    public static DistanceAlgoManager getInstance() {
        return ourInstance;
    }
    private DistanceAlgoManager() {
    }
    private volatile double distance = 0.0d;
    private volatile double speed = 0.0d;


    //step 1
    public void init(int twoMarkPointDistance) {
//        Log.i(TAG, "init: --------------"+twoMarkPointDistance);
        logger.info("init: ");
        isLast = false;
        DistanceAlgo.getInstance().setTwoMarkPointDistance(twoMarkPointDistance);
        CommonHandler.getInstance().getHandler().sendEmptyMessage(CommonHandler.DistanceMathInit);
        logger.info("init: over");
    }
    //TODO 只允许被 handler 回调
    public void onInit() {
//        Log.i(TAG, "onInit: --------------");
        DistanceAlgo.getInstance().startCleanOriginData();
        mathDistance();
    }

    private LinkedBlockingQueue<Double> startMarkQueue = new LinkedBlockingQueue<>();
    public void receiveDataStartMark(double markA_origin) {
//        Log.i(TAG, "receiveDataStartMark: "+markA_origin);
//        SaveData.saveRssiStart(String.valueOf(markA_origin));
        startMarkQueue.add(markA_origin);
//        DistanceAlgo.getInstance().receiveDataStartMark(markA_origin);
    }
    private LinkedBlockingQueue<Double> endMarkQueue = new LinkedBlockingQueue<>();
    public void receiveDataEndMark(double markB_origin) {
//        Log.i(TAG, "receiveDataEndMark: "+markB_origin);
//        SaveData.saveRssiEnd(String.valueOf(markB_origin));
        endMarkQueue.add(markB_origin);
//        DistanceAlgo.getInstance().receiveDataEndMark(markB_origin);
    }
    private LinkedBlockingQueue<Double> stepCountQueue = new LinkedBlockingQueue<>();
    public void receiveStepData(double step_count_origin_data) {
//        Log.i(TAG, "receiveStepData: "+step_count_origin_data);
//        SaveData.saveStepCount(String.valueOf(step_count_origin_data));
        stepCountQueue.add(step_count_origin_data);
//        DistanceAlgo.getInstance().receiveStepData(step_count_origin_data);
    }


    //step 2
    private void mathDistance() {
            CommonHandler.getInstance().getHandler().removeMessages(CommonHandler.DistanceMath);
//            CommonHandler.getInstance().getHandler().sendEmptyMessageDelayed(CommonHandler.DistanceMath,1500);
            CommonHandler.getInstance().getHandler().sendEmptyMessageDelayed(CommonHandler.DistanceMath,50);
    }

    //TODO 只允许被 handler 回调
    public void onMathDistance() {
//        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {

        if (!DistanceAlgo.getInstance().isDistanceMathing()){
            List<Double> allData = new ArrayList<>();
            startMarkQueue.drainTo(allData);  // 一次性取出所有数据
            for (double markA_origin : allData) {
                DistanceAlgo.getInstance().receiveDataStartMark(markA_origin);
            }
            allData.clear();
            endMarkQueue.drainTo(allData);
            for (double markB_origin : allData) {
                DistanceAlgo.getInstance().receiveDataEndMark(markB_origin);
            }
            allData.clear();
            stepCountQueue.drainTo(allData);
            for (double step : allData) {
                DistanceAlgo.getInstance().receiveStepData(step);
            }
        }
        long start = System.currentTimeMillis();
        DistanceAlgo.Result result = DistanceAlgo.getInstance().mathDistance();
//            Log.e(TAG, "onMathDistance: over dur:-------"+(System.currentTimeMillis()-start)+"ms");
        if (result != null) {
            DistanceAlgoManager.getInstance().distance = result.distanceRes;
            DistanceAlgoManager.getInstance().speed = DistanceAlgo.getInstance().last_speed;
//            if (isLast)
            logger.info("onMathDistance:onMathDistance: ----------->>>> return res  dis:"+result.distanceRes+"   speed:"+DistanceAlgo.getInstance().last_speed+"+over dur:-------"+(System.currentTimeMillis()-start)+"ms");
        }else {
//            if (isLast)
            logger.info("onMathDistance:onMathDistance: ----------->>>> return null      over dur:-------"+(System.currentTimeMillis()-start)+"ms");

        }
        CommonHandler.getInstance().getHandler().removeMessages(CommonHandler.DistanceMath);
//        CommonHandler.getInstance().getHandler().sendEmptyMessageDelayed(CommonHandler.DistanceMath,1500);
        CommonHandler.getInstance().getHandler().sendEmptyMessageDelayed(CommonHandler.DistanceMath,50);
//      }
}


    public void mathDistanceLastTime() {
 //        Log.e(TAG, "mathDistanceLastTime: -------------------------------------");
        logger.info("mathDistanceLastTime: -----------------------------------");
        CommonHandler.getInstance().getHandler().removeMessages(CommonHandler.DistanceMathLastTime);
        CommonHandler.getInstance().getHandler().removeMessages(CommonHandler.DistanceMath);
//        CommonHandler.getInstance().getHandler().sendEmptyMessageDelayed(CommonHandler.DistanceMathLastTime,500);
        CommonHandler.getInstance().getHandler().sendEmptyMessageDelayed(CommonHandler.DistanceMathLastTime,50);
    }

    private boolean isLast = false;
    //TODO 只允许被 handler 回调
    public void onMathDistanceLastTime() {
        //wait all data ready.
        isLast = true;
        onMathDistance();
        CommonHandler.getInstance().getHandler().removeMessages(CommonHandler.DistanceMathLastTime);
        CommonHandler.getInstance().getHandler().removeMessages(CommonHandler.DistanceMath);
        DistanceAlgo.getInstance().onStop();
    }


    public double getDistance() {
        //返回值保留 2 位小数
        return Math.round(distance * 100) / 100.0;
//        return distance;
    }
    public double getSpeed(){
        return Math.round(speed * 100) / 100.0;
//        return speed;
    }


    private static volatile boolean isStop = false;
    private static void testDataFlow(List<OriginData> originDataList) throws IOException {
        double allDiff = 0;
//        DistanceAlgo.isShowLog = true;
        DistanceAlgo.isShowLog = false;
//        for (int i = 0; i < originDataList.size(); i++) {
        for (int i = 0; i < 1; i++) {//ok
//        for (int i = 1; i < 2; i++) {//ok
//        for (int i = 2; i < 3; i++) {//ok 425.87782867517967
//        for (int i = 3; i < 4; i++) {//ok 492.11601506350746
//        for (int i = 4; i < 5; i++) {//ok 509.336889536267
//        for (int i = 5; i < 6; i++) {//ok 518.918918918919
//        for (int i = 6; i < 7; i++) {//ok 504.9739193573367
//        for (int i = 7; i < 8; i++) {//ok 509.2986276266673
//        for (int i = 8; i < 9; i++) {//ok 448.23240589198036
//        for (int i = 9; i < 10; i++) {//ok 430.4934072628195
//        for (int i = ; i < ; i++) {
            OriginData originData = originDataList.get(i);
            List<Double> markA_origin = new ArrayList<>();
            List<Double> markB_origin = new ArrayList<>();
            List<Double> step_count_origin_data = new ArrayList<>();

            List<String> markA_lines = Files.readAllLines(Paths.get(originData.markAPath));
            for (String line : markA_lines) {
                String[] parts = line.trim().split(",");
                markA_origin.add(Double.parseDouble(parts[0])); // markA 滤波
            }

            List<String> markB_lines = Files.readAllLines(Paths.get(originData.markBPath));
            for (String line : markB_lines) {
                String[] parts = line.trim().split(",");
                markB_origin.add(Double.parseDouble(parts[0])); // markB 滤波
            }

            List<String> step_count_lines = Files.readAllLines(Paths.get(originData.stepPath));
            for (String line : step_count_lines) {
                String[] parts = line.trim().split(",");
                step_count_origin_data.add(Double.parseDouble(parts[4])); // 步数
            }


            new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < markA_origin.size(); i++) {
//                        DistanceAlgo.getInstance().receiveDataStartMark(markA_origin.get(i));
                        DistanceAlgoManager.getInstance().receiveDataStartMark(markA_origin.get(i));
                        if (i%10==0) {
//                            try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}
                            try {Thread.sleep(20);} catch (InterruptedException e) {throw new RuntimeException(e);}
                        }
                    }

                    try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}
                    System.out.println("DistanceAlgoManager:run: ------data over");
                    DistanceAlgoManager.getInstance().mathDistanceLastTime();

                    try {Thread.sleep(2000);} catch (InterruptedException e) {throw new RuntimeException(e);}
                    isStop = true;
                    System.out.println("DistanceAlgoManager:run: ------data over222222");

                }
            }).start();

            new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < markB_origin.size(); i++) {
//                        DistanceAlgo.getInstance().receiveDataEndMark(markB_origin.get(i));
                        DistanceAlgoManager.getInstance().receiveDataEndMark(markB_origin.get(i));
                        if (i%10==0) {
//                            try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}
                            try {Thread.sleep(20);} catch (InterruptedException e) {throw new RuntimeException(e);}
                        }
                    }
                }
            }).start();

            new Thread(new Runnable() {
                @Override
                public void run() {
                    for (int i = 0; i < step_count_origin_data.size(); i++) {
//                        DistanceAlgo.getInstance().receiveStepData(step_count_origin_data.get(i));
                        DistanceAlgoManager.getInstance().receiveStepData(step_count_origin_data.get(i));
//                        try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}
                        try {Thread.sleep(20);} catch (InterruptedException e) {throw new RuntimeException(e);}
                    }
                }
            }).start();

            DistanceAlgo.getInstance().startCleanOriginData();
            new Thread(new Runnable() {
                @Override
                public void run() {
                    DistanceAlgoManager.getInstance().init(30);
                    System.out.println("DistanceAlgoManager:run: math--->");
                    long start0 = System.currentTimeMillis();
//                    while (true && (!isStop) && (System.currentTimeMillis() - start0 < 2000)){
                    while (true && (!isStop)){
                        System.out.println("DistanceAlgoManager:run: cat res....");
//                        try {Thread.sleep(1000);} catch (InterruptedException e) {throw new RuntimeException(e);}
                        try {Thread.sleep(100);} catch (InterruptedException e) {throw new RuntimeException(e);}

//                        if (result != null) {
//                            Double mathResLen = result.distanceRes;
//                            double diff = Math.abs(mathResLen - Double.parseDouble(originData.realLen));
//                            System.out.println("--real"+originData.realLen+"    --mathlen:"+mathResLen+"  speed:"+DistanceAlgo.getInstance().last_speed+"    --diff:"+ diff +"                       dur:"+dur);
////                            System.out.println("--real"+originData.realLen+"--mathlen:"+mathResLen+"   --diff:"+ diff +"                       dur:"+dur);
//                        }else {
//                            System.err.println("  no result,         dur:"+dur);
//
//                        }

                    }
                }
            }).start();

//            long start = System.currentTimeMillis();
//            DistanceAlgo.Result result = DistanceAlgo.getInstance().mathDistance();
//            long dur = System.currentTimeMillis() - start;
//            Double mathResLen = result.distanceRes;
//            double diff = Math.abs(mathResLen - Double.parseDouble(originData.realLen));
//            allDiff += diff;
//            System.out.println(i+"--real"+originData.realLen+"--mathlen:"+mathResLen+"   --diff:"+ diff +"                       dur:"+dur);
        }

//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff+" 平均："+allDiff/originDataList.size());
//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff);//diff 15.6 滤波  第二个 5米， 其他的好一些
//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff);//diff 15.05  没滤波  第二个 2.51 。

//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff);//diff 15.05  没有使用刘跃 的滤波， 没滤波  第二个 2.51 。
    }

    private static void testDataTime(List<OriginData> originDataList) throws IOException {
        System.out.println("DistanceAlgoManager:testDataTime:");
        double allDiff = 0;
        long durAve = 0;
        DistanceAlgo.isShowLog = false;
        for (int i = 0; i < 1; i++) {//误差 大了 0.12
//        for (int i = 4; i < 5; i++) {//误差 大了 0.12
            OriginData originData = originDataList.get(i);
            List<Double> markA_origin = new ArrayList<>();
            List<Double> markB_origin = new ArrayList<>();
            List<Double> step_count_origin_data = new ArrayList<>();

            List<String> markA_lines = Files.readAllLines(Paths.get(originData.markAPath));
            for (String line : markA_lines) {
                String[] parts = line.trim().split(",");
                markA_origin.add(Double.parseDouble(parts[0])); // markA 滤波
            }

            List<String> markB_lines = Files.readAllLines(Paths.get(originData.markBPath));
            for (String line : markB_lines) {
                String[] parts = line.trim().split(",");
                markB_origin.add(Double.parseDouble(parts[0])); // markB 滤波
            }

            List<String> step_count_lines = Files.readAllLines(Paths.get(originData.stepPath));
            for (String line : step_count_lines) {
                String[] parts = line.trim().split(",");
                step_count_origin_data.add(Double.parseDouble(parts[4])); // 步数
            }


            for (int j = 0; j < 20; j++) {
                DistanceAlgo.getInstance().startCleanOriginData();
                long start = System.currentTimeMillis();
                DistanceAlgo.Result result = DistanceAlgo.getInstance().mathDistance(markA_origin, markB_origin, step_count_origin_data);
                long dur = System.currentTimeMillis() - start;
                durAve +=dur;
                Double mathResLen = result.distanceRes;
                double diff = Math.abs(mathResLen - Double.parseDouble(originData.realLen));
                allDiff += diff;
                System.out.println(i+"--real"+originData.realLen+"--mathlen:"+mathResLen+"   --现在的diff:"+ diff +"                       dur:"+dur);
//                if (originData.mathLen!=result.distanceRes){
//                    System.err.println("DistanceAlgoManager:testDataCorrect: 结果不等, 现在的值："+ result.distanceRes+" ,现在的 diff:"+diff);
//                    System.err.println("DistanceAlgoManager:testDataCorrect:         原始的值："+originData.mathLen+" ,原始的 diff:"+Math.abs(originData.mathLen-result.distanceRes));
//                    double nowDiffbefMath = Math.abs(result.distanceRes-Double.parseDouble(originData.realLen)) - Math.abs(originData.mathLen-Double.parseDouble(originData.realLen));
//                    if (nowDiffbefMath <0){
//                        System.out.println("DistanceAlgoManager:testDataCorrect:          😄😄😄偏差变小了    -- 多少:"+nowDiffbefMath);
//                    }else {
//                        System.err.println("DistanceAlgoManager:testDataCorrect:          😭😭😭😭😭偏差变大了-- 多少:"+nowDiffbefMath);
//                    }
//                    System.err.println("DistanceAlgoManager:testDataCorrect:             数据："+originData.toString());
//                }
            }
        }

        System.err.println("-----------all diff:"+allDiff+" 平均误差："+allDiff/20 +" 平均时长："+(durAve/20)+"ms");//330 360 ms
    }

    static boolean isShowMap = false;
    private static void testDataCorrect(List<OriginData> originDataList) throws IOException {
        System.out.println("DistanceAlgoManager:testDataCorrect:");
        double allDiff = 0;
        double allDiffCount = 0;
//        DistanceAlgo.isShowLog = true;
        DistanceAlgo.isShowLog = false;
//        isShowMap = false;
        isShowMap = true;
//        for (int i = 0; i < originDataList.size(); i++) {
                    for (int i = 18; i < 19; i++) {//正确
//        for (int i = originDataList.size()-1; i < originDataList.size(); i++) {
//        for (int i = 0; i < 1; i++) {//误差 大了 0.12
//        for (int i = 0; i < 3; i++) {//误差 大了 0.12
//        for (int i = 0; i < 4; i++) {//正确
//        for (int i = 2; i < 3; i++) {//正确
//        for (int i = 3; i < 4; i++) {//正确
//        for (int i = 4; i < 5; i++) {//正确
//        for (int i = 8; i < 9; i++) {//正确
//        for (int i = 13; i < 14; i++) {//正确
//        for (int i = 13; i < 14; i++) {//正确
//        for (int i = 10; i < 11; i++) {//正确
//        for (int i = 11; i < 12; i++) {//正确

            allDiffCount++;
            OriginData originData = originDataList.get(i);
            List<Double> markA_origin = new ArrayList<>();
            List<Double> markB_origin = new ArrayList<>();
            List<Double> step_count_origin_data = new ArrayList<>();

            List<String> markA_lines = Files.readAllLines(Paths.get(originData.markAPath));
            for (String line : markA_lines) {
                String[] parts = line.trim().split(",");
                markA_origin.add(Double.parseDouble(parts[0])); // markA 滤波
            }

            List<String> markB_lines = Files.readAllLines(Paths.get(originData.markBPath));
            for (String line : markB_lines) {
                String[] parts = line.trim().split(",");
                markB_origin.add(Double.parseDouble(parts[0])); // markB 滤波
            }

            List<String> step_count_lines = Files.readAllLines(Paths.get(originData.stepPath));
            for (String line : step_count_lines) {
                String[] parts = line.trim().split(",");
                step_count_origin_data.add(Double.parseDouble(parts[4])); // 步数
            }

            // 创建卡尔曼滤波器实例
//            double[] filteredData = new double[markA_lines.size()];
//            KalmanFilter kf = new KalmanFilter(1e-5, 1e-1,markA_origin.get(0));
//            for (int j = 0; j < markA_origin.size(); j++) {
//                filteredData[j] = kf.update(markA_origin.get(j));
//            }
//            LineChartExample.displayChart(filteredData,"卡夫曼滤波 A");

            //TODO 2024-08-17 距离设定。
            if (originData.twoMarkLen!=0){
                DistanceAlgo.getInstance().setTwoMarkPointDistance(originData.twoMarkLen);
            }else {
                DistanceAlgo.getInstance().setTwoMarkPointDistance(30);
            }

            DistanceAlgo.getInstance().startCleanOriginData();
            DistanceAlgo.getInstance().onStop();
            long start = System.currentTimeMillis();
            DistanceAlgo.Result result = DistanceAlgo.getInstance().mathDistance(markA_origin, markB_origin, step_count_origin_data);
            long dur = System.currentTimeMillis() - start;
            Double mathResLen = result.distanceRes;
            double diff = Math.abs(mathResLen - Double.parseDouble(originData.realLen));
            allDiff += diff;
            System.out.println(i+"--真实的距离："+originData.realLen+"--现在计算的距离:"+mathResLen+"   ----现在的diff:"+ diff +"                       dur:"+dur+(originData.mathLen==result.distanceRes ? "----😄😄😄😄😄😄相同，正确":"----不同！！！"));
            if (originData.mathLen!=result.distanceRes){
                double nowDiffbefMath = Math.abs(result.distanceRes-Double.parseDouble(originData.realLen)) - Math.abs(originData.mathLen-Double.parseDouble(originData.realLen));
                if (nowDiffbefMath <0){
                    System.out.println("                                          😄😄😄偏差变小了    -- 多少:"+nowDiffbefMath+"    数据："+originData.toString());
                }else {
                    System.out.println("                                          😭😭😭😭😭偏差变大了-- 多少:"+nowDiffbefMath+"    数据："+originData.toString());
                }
                System.out.println("     结果不等, 现在计算："+ result.distanceRes);
                System.out.println("         原始的计算结果："+originData.mathLen+" ,原始计算 vs 现在计算 diff:"+Math.abs(originData.mathLen-result.distanceRes)+"  原始的计算 diff:"+Math.abs(originData.mathLen-Double.parseDouble(originData.realLen)));

            }

//            LineChartExample.displayChart(markA_origin.stream().mapToDouble(Double::doubleValue).toArray(),"A mark point");
//            LineChartExample.displayChart(markB_origin.stream().mapToDouble(Double::doubleValue).toArray(),"B mark point");
//            LineChartExample.displayChart(markA_origin.stream().mapToDouble(Double::doubleValue).toArray(),markB_origin.stream().mapToDouble(Double::doubleValue).toArray(),"B and A");

            //距离：：
            if (isShowMap){
                double[] clone = result.distance_fix.clone();
                LineChartExample.displayChart(clone,i+"");
            }

//            LineChartExample.displayChart(DistanceAlgo.getInstance().filtered_markA,DistanceAlgo.getInstance().filtered_markB,"filter A and B");
//            LineChartExample.displayChart(DistanceAlgo.getInstance().filtered_markA,"filter A");
//            LineChartExample.displayChart(DistanceAlgo.getInstance().filtered_markB,"filter B");

//            interval_mid_line_index = interval_mid_line_index.stream().distinct().sorted().collect(Collectors.toList());

            //波峰波谷位置
            if (isShowMap){
                double[] filtered_markA = DistanceAlgo.getInstance().filtered_markA.clone();
                double[] filtered_markB = DistanceAlgo.getInstance().filtered_markB.clone();
                int[] peekA = ((HashSet<Integer>) DistanceAlgo.getInstance().peekA_index_cache.clone()).stream().distinct().sorted().mapToInt(Integer::intValue).toArray();
                int[] peekB = ((HashSet<Integer>) DistanceAlgo.getInstance().peekB_index_cache.clone()).stream().distinct().sorted().mapToInt(Integer::intValue).toArray();

//            //filter A B and peak
//            LineChartExample.displayChart(filtered_markA, peekA,"filter A  Peak A");
//            LineChartExample.displayChart(filtered_markB, peekB,"filter B  Peak B");

                //波形图。。。。A + B
                LineChartExample.displayChart(filtered_markA, filtered_markB, peekA, peekB,i+ " filter A and B");
            }


        }

        System.err.println("-----------------:  all diff all:"+allDiff+" diff平均："+allDiff/allDiffCount);
//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff);//diff 15.6 滤波  第二个 5米， 其他的好一些
//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff);//diff 15.05  没滤波  第二个 2.51 。
//        System.out.println("DistanceAlgoManager:main: all diff:"+allDiff);//diff 15.05  没有使用刘跃 的滤波， 没滤波  第二个 2.51 。
    }



    private static void initOriginData(List<OriginData> originDataList) {
        // 读取 markA 文件
        ArrayList<Path> markAPaths = new ArrayList<>();

        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/00/check_kangfu_filter_69D1CC63B9F3_2024-07-11_09_36_54.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/01/check_kangfu_filter_69D1CC63B9F3_2024-07-11_09_57_26.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/02/check_kangfu_filter_69D1CC63B9F3_2024-07-11_10_08_04.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/03/check_kangfu_filter_69D1CC63B9F3_2024-07-11_10_18_07.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/04/check_kangfu_filter_69D1CC63B9F3_2024-07-11_10_28_19.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/05/check_kangfu_filter_69D1CC63B9F3_2024-07-11_10_38_28.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/06/check_kangfu_filter_69D1CC63B9F3_2024-07-11_10_50_37.txt"));
        markAPaths.add(Paths.get("./src/algo/OriData/2024_07_11/07/check_kangfu_filter_69D1CC63B9F3_2024-07-11_11_00_50.txt"));


        // 读取 markB 文件
        ArrayList<Path> markBPaths = new ArrayList<>();
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/00/check_kangfu_filter_480F1EB685D8_2024-07-11_09_36_54.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/01/check_kangfu_filter_480F1EB685D8_2024-07-11_09_57_26.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/02/check_kangfu_filter_480F1EB685D8_2024-07-11_10_08_04.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/03/check_kangfu_filter_480F1EB685D8_2024-07-11_10_18_07.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/04/check_kangfu_filter_480F1EB685D8_2024-07-11_10_28_19.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/05/check_kangfu_filter_480F1EB685D8_2024-07-11_10_38_28.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/06/check_kangfu_filter_480F1EB685D8_2024-07-11_10_50_37.txt"));
        markBPaths.add(Paths.get("./src/algo/OriData/2024_07_11/07/check_kangfu_filter_480F1EB685D8_2024-07-11_11_00_50.txt"));


        // 读取步数文件
        ArrayList<Path> stepPaths = new ArrayList<>();
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/00/check_kangfu_filter_walk_speed_2024-07-11_09_36_54.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/01/check_kangfu_filter_walk_speed_2024-07-11_09_57_27.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/02/check_kangfu_filter_walk_speed_2024-07-11_10_08_04.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/03/check_kangfu_filter_walk_speed_2024-07-11_10_18_08.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/04/check_kangfu_filter_walk_speed_2024-07-11_10_28_19.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/05/check_kangfu_filter_walk_speed_2024-07-11_10_38_29.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/06/check_kangfu_filter_walk_speed_2024-07-11_10_50_37.txt"));
        stepPaths.add(Paths.get("./src/algo/OriData/2024_07_11/07/check_kangfu_filter_walk_speed_2024-07-11_11_00_49.txt"));


        //origin 8 data

        //0--real450--mathlen:451.5079689415611   --diff:1.5079689415611028                       dur:661
        //1--real439.6--mathlen:437.0840343299077   --diff:2.515965670092328                       dur:463
        //2--real422.4--mathlen:425.87782867517967   --diff:3.477828675179694                       dur:353
        //3--real494.4--mathlen:492.11601506350746   --diff:2.2839849364925158                       dur:445
        //4--real510--mathlen:509.336889536267   --diff:0.6631104637330054                       dur:274
        //5--real520--mathlen:518.918918918919   --diff:1.081081081081038                       dur:273
        //6--real505.6--mathlen:504.9739193573367   --diff:0.6260806426633394                       dur:266
        //7--real506.4--mathlen:509.2986276266673   --diff:2.8986276266673485                       dur:401
        //8--real455--mathlen:448.23240589198036   --diff:6.767594108019637                       dur:274
        //9--real433--mathlen:430.4934072628195   --diff:2.5065927371804833                       dur:274
        //DistanceAlgoManager:main: all diff:24.328834882670492 平均：2.4328834882670494
        for (int i = 0; i < markAPaths.size(); i++) {
            if (i == 0) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"450",451.5079689415611));
            if (i == 1) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"439.6",437.0840343299077 ));
            if (i == 2) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"422.4",425.87782867517967));
            if (i == 3) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"494.4",492.11601506350746));
            if (i == 4) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"510",509.336889536267));
            if (i == 5) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"520",518.918918918919));
            if (i == 6) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"505.6",504.9739193573367));
            if (i == 7) originDataList.add(new OriginData(markAPaths.get(i).toString(),markBPaths.get(i).toString(),stepPaths.get(i).toString(),"506.4",509.2986276266673));
        }
        originDataList.add(new OriginData("./src/algo/OriData/2024_07_11/08/temp_rssi_start_2024-08-01_11_22_16.txt"
                ,"./src/algo/OriData/2024_07_11/08/temp_rssi_end_2024-08-01_11_22_16.txt",
                "./src/algo/OriData/2024_07_11/08/temp_step_distance_count_2024-08-01_11_22_16.txt","455",448.23240589198036));

        originDataList.add(new OriginData("./src/algo/OriData/2024_07_11/09/temp_rssi_start_2024-08-01_09_06_22.txt"
                ,"./src/algo/OriData/2024_07_11/09/temp_rssi_end_2024-08-01_09_06_22.txt",
                "./src/algo/OriData/2024_07_11/09/temp_step_distance_count_2024-08-01_09_06_22.txt","433",430.4934072628195));

        //01  --10
        originDataList.add(new OriginData("./src/algo/6mindata/01/check_kangfu_filter_69D1CC63B9F3_2024-08-11_15_59_08.txt"
                ,"./src/algo/6mindata/01/check_kangfu_filter_480F1EB685D8_2024-08-11_15_59_08.txt",
                "./src/algo/6mindata/01/check_kangfu_filter_walk_speed_2024-08-11_15_59_08.txt","195.2",206.56434131379234,30));//204.4 , 366.74
        //02  --11
        originDataList.add(new OriginData("./src/algo/6mindata/02/check_kangfu_filter_69D1CC63B9F3_2024-08-11_16_32_22.txt"
                ,"./src/algo/6mindata/02/check_kangfu_filter_480F1EB685D8_2024-08-11_16_32_22.txt",
                "./src/algo/6mindata/02/check_kangfu_filter_walk_speed_2024-08-11_16_32_21.txt","205.2",0,30));//
        //03  --12
        originDataList.add(new OriginData("./src/algo/6mindata/03/check_kangfu_filter_69D1CC63B9F3_2024-08-11_17_04_26.txt"
                ,"./src/algo/6mindata/03/check_kangfu_filter_480F1EB685D8_2024-08-11_17_04_26.txt",
                "./src/algo/6mindata/03/check_kangfu_filter_walk_speed_2024-08-11_17_04_26.txt","334.4",0,30));//
        //04 --13
        originDataList.add(new OriginData("./src/algo/6mindata/04/起始点check_kangfu_filter_69D1CC63B9F3_2024-08-14_16_03_20.txt"
                ,"./src/algo/6mindata/04/结束点check_kangfu_filter_480F1EB685D8_2024-08-14_16_03_20.txt",
                "./src/algo/6mindata/04/check_kangfu_filter_walk_speed_2024-08-14_16_03_20.txt","520",0,20));//
        //05 - 14 显示距离！！！
        originDataList.add(new OriginData("./src/algo/6mindata/05/开始点check_kangfu_filter_69D1CC63B9F3_2024-08-14_15_53_23.txt"
                ,"./src/algo/6mindata/05/结束点check_kangfu_filter_480F1EB685D8_2024-08-14_15_53_23.txt",
                "./src/algo/6mindata/05/check_kangfu_filter_walk_speed_2024-08-14_15_53_24.txt","560",480.13,20));//
        //06 - 15
        originDataList.add(new OriginData("./src/algo/6mindata/06/起始点check_kangfu_filter_69D1CC63B9F3_2024-08-14_14_59_01.txt"
                ,"./src/algo/6mindata/06/结束点check_kangfu_filter_480F1EB685D8_2024-08-14_14_59_01.txt",
                "./src/algo/6mindata/06/check_kangfu_filter_walk_speed_2024-08-14_14_59_00.txt","361.4",538.0341231702332,20));//

        //07 -- 16
        originDataList.add(new OriginData("./src/algo/6mindata/07/check_kangfu_filter_69D1CC63B9F3_2024-08-15_16_47_13.txt"
                ,"./src/algo/6mindata/07/check_kangfu_filter_480F1EB685D8_2024-08-15_16_47_13.txt",
                "./src/algo/6mindata/07/check_kangfu_filter_walk_speed_2024-08-15_16_47_13.txt","424.8",538.0341231702332,20));//


        //17--->
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/b/check_kangfu_filter_69D1CC63B9F3_2024-08-22_15_54_36.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/b/check_kangfu_filter_480F1EB685D8_2024-08-22_15_54_36.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/b/check_kangfu_filter_walk_speed_2024-08-22_15_54_36.txt","287.2",289.7));//

        //18
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/c/check_kangfu_filter_69D1CC63B9F3_2024-08-22_16_07_49.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/c/check_kangfu_filter_480F1EB685D8_2024-08-22_16_07_49.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/c/check_kangfu_filter_walk_speed_2024-08-22_16_07_50.txt","247",246.5));//

        //19
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/d/check_kangfu_filter_69D1CC63B9F3_2024-08-22_16_30_43.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/d/check_kangfu_filter_480F1EB685D8_2024-08-22_16_30_43.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/d/check_kangfu_filter_walk_speed_2024-08-22_16_30_43.txt","150",150));//

//        //20
//        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/e/check_kangfu_filter_69D1CC63B9F3_2024-08-22_15_54_36.txt"
//                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/e/check_kangfu_filter_480F1EB685D8_2024-08-22_15_54_36.txt",
//                "./src/algo/6mindata/Mark点放地上-30/30米-正常-斜跨/e/check_kangfu_filter_walk_speed_2024-08-22_15_54_36.txt","287.2",289.7));//





        //20 b
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/b/check_kangfu_filter_69D1CC63B9F3_2024-08-23_11_09_58.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/b/check_kangfu_filter_480F1EB685D8_2024-08-23_11_09_58.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/b/check_kangfu_filter_walk_speed_2024-08-23_11_09_58.txt","340",346.6));//

        //21 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/c/check_kangfu_filter_69D1CC63B9F3_2024-08-23_11_20_20.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/c/check_kangfu_filter_480F1EB685D8_2024-08-23_11_20_20.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/c/check_kangfu_filter_walk_speed_2024-08-23_11_20_21.txt","267.2",258.5));//

        //22 e
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/e/check_kangfu_filter_69D1CC63B9F3_2024-08-23_11_29_39.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/e/check_kangfu_filter_480F1EB685D8_2024-08-23_11_29_39.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-正常-挂在胳膊上/e/check_kangfu_filter_walk_speed_2024-08-23_11_29_40.txt","398.4",389));//

        //23 b
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/b/check_kangfu_filter_69D1CC63B9F3_2024-08-22_19_38_19.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/b/check_kangfu_filter_480F1EB685D8_2024-08-22_19_38_19.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/b/check_kangfu_filter_walk_speed_2024-08-22_19_38_19.txt","469.6",475.6));//
        //24 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/c/check_kangfu_filter_69D1CC63B9F3_2024-08-22_19_58_32.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/c/check_kangfu_filter_480F1EB685D8_2024-08-22_19_58_32.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/c/check_kangfu_filter_walk_speed_2024-08-22_19_58_33.txt","366.4",369.3));//
        //25 d
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/d/check_kangfu_filter_69D1CC63B9F3_2024-08-22_20_17_41.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/d/check_kangfu_filter_480F1EB685D8_2024-08-22_20_17_41.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/d/check_kangfu_filter_walk_speed_2024-08-22_20_17_41.txt","180",186.5));//

        //26 e
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/e/check_kangfu_filter_69D1CC63B9F3_2024-08-22_20_08_37.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/e/check_kangfu_filter_480F1EB685D8_2024-08-22_20_08_37.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-斜跨/e/check_kangfu_filter_walk_speed_2024-08-22_20_08_38.txt","542.4",546.5));//


        //27 b
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/b/check_kangfu_filter_69D1CC63B9F3_2024-08-23_10_21_15.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/b/check_kangfu_filter_480F1EB685D8_2024-08-23_10_21_15.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/b/check_kangfu_filter_walk_speed_2024-08-23_10_21_15.txt","480",486.6));//
        //28 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/c/check_kangfu_filter_69D1CC63B9F3_2024-08-23_10_30_18.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/c/check_kangfu_filter_480F1EB685D8_2024-08-23_10_30_18.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/c/check_kangfu_filter_walk_speed_2024-08-23_10_30_19.txt","360",304.1));//
        //29 d
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/d/check_kangfu_filter_69D1CC63B9F3_2024-08-23_10_49_25.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/d/check_kangfu_filter_480F1EB685D8_2024-08-23_10_49_25.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/d/check_kangfu_filter_walk_speed_2024-08-23_10_49_25.txt","120",122.4));//
        //30 e
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/e/check_kangfu_filter_69D1CC63B9F3_2024-08-23_10_39_32.txt"
                ,"./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/e/check_kangfu_filter_480F1EB685D8_2024-08-23_10_39_32.txt",
                "./src/algo/6mindata/Mark点放地上-30/30米-快速-挂胳膊上/e/check_kangfu_filter_walk_speed_2024-08-23_10_39_32.txt","513.4",440.5));//


        //Mark点放地上-20
        //31 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/20米-正常-斜跨/c/check_kangfu_filter_69D1CC63B9F3_2024-08-23_17_25_09.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/20米-正常-斜跨/c/check_kangfu_filter_480F1EB685D8_2024-08-23_17_25_09.txt",
                "./src/algo/6mindata/Mark点放地上-20/20米-正常-斜跨/c/check_kangfu_filter_walk_speed_2024-08-23_17_25_09.txt","273.8",272.8,20));//
        //32 e
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/20米-正常-斜跨/e/check_kangfu_filter_69D1CC63B9F3_2024-08-24_17_01_26.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/20米-正常-斜跨/e/check_kangfu_filter_480F1EB685D8_2024-08-24_17_01_26.txt",
                "./src/algo/6mindata/Mark点放地上-20/20米-正常-斜跨/e/check_kangfu_filter_walk_speed_2024-08-24_17_01_27.txt","385",387.5,20));//

        //33 b
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/b/check_kangfu_filter_69D1CC63B9F3_2024-08-24_10_09_08.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/b/check_kangfu_filter_480F1EB685D8_2024-08-24_10_09_08.txt",
                "./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/b/check_kangfu_filter_walk_speed_2024-08-24_10_09_08.txt","420",367,20));//
        //34 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/c/check_kangfu_filter_69D1CC63B9F3_2024-08-24_09_51_01.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/c/check_kangfu_filter_480F1EB685D8_2024-08-24_09_51_01.txt",
                "./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/c/check_kangfu_filter_walk_speed_2024-08-24_09_51_01.txt","260",293.8,20));//
        //35 d
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/d/check_kangfu_filter_69D1CC63B9F3_2024-08-24_09_34_28.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/d/check_kangfu_filter_480F1EB685D8_2024-08-24_09_34_28.txt",
                "./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/d/check_kangfu_filter_walk_speed_2024-08-24_09_34_28.txt","80",87.5,20));//
        //36 e
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/e/check_kangfu_filter_69D1CC63B9F3_2024-08-24_09_23_15.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/e/check_kangfu_filter_480F1EB685D8_2024-08-24_09_23_15.txt",
                "./src/algo/6mindata/Mark点放地上-20/20米-正常-挂胳膊上/e/check_kangfu_filter_walk_speed_2024-08-24_09_23_16.txt","305",346.7,20));//



        //37 b
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-斜跨/b/check_kangfu_filter_69D1CC63B9F3_2024-08-23_15_16_17.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-斜跨/b/check_kangfu_filter_480F1EB685D8_2024-08-23_15_16_17.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-斜跨/b/check_kangfu_filter_walk_speed_2024-08-23_15_16_18.txt","407.2",409.1,20));//
        //38 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-斜跨/c/check_kangfu_filter_69D1CC63B9F3_2024-08-23_16_52_33.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-斜跨/c/check_kangfu_filter_480F1EB685D8_2024-08-23_16_52_33.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-斜跨/c/check_kangfu_filter_walk_speed_2024-08-23_16_52_34.txt","341",335.6,20));//
        //39 d
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-斜跨/d/check_kangfu_filter_69D1CC63B9F3_2024-08-23_17_12_05.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-斜跨/d/check_kangfu_filter_480F1EB685D8_2024-08-23_17_12_05.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-斜跨/d/check_kangfu_filter_walk_speed_2024-08-23_17_12_05.txt","80",42.8,20));//
        //40 e
//        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-斜跨/e/"
//                ,"./src/algo/6mindata/Mark点放地上-20/快速-斜跨/e/",
//                "./src/algo/6mindata/Mark点放地上-20/快速-斜跨/e/","",,20));//

        //40 b
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/b/check_kangfu_filter_69D1CC63B9F3_2024-08-24_10_18_16.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/b/check_kangfu_filter_480F1EB685D8_2024-08-24_10_18_16.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/b/check_kangfu_filter_walk_speed_2024-08-24_10_18_16.txt","437",351,20));//
        //41 c
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/c/check_kangfu_filter_69D1CC63B9F3_2024-08-24_10_00_00.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/c/check_kangfu_filter_480F1EB685D8_2024-08-24_10_00_00.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/c/check_kangfu_filter_walk_speed_2024-08-24_10_00_01.txt","380",497.5,20));//


        //42 d
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/d/check_kangfu_filter_69D1CC63B9F3_2024-08-24_17_22_10.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/d/check_kangfu_filter_480F1EB685D8_2024-08-24_17_22_10.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/d/check_kangfu_filter_walk_speed_2024-08-24_17_22_10.txt","60",66.1,20));//
        //43 e
        originDataList.add(new OriginData("./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/e/check_kangfu_filter_69D1CC63B9F3_2024-08-24_17_10_32.txt"
                ,"./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/e/check_kangfu_filter_480F1EB685D8_2024-08-24_17_10_32.txt",
                "./src/algo/6mindata/Mark点放地上-20/快速-挂胳膊上/e/check_kangfu_filter_walk_speed_2024-08-24_17_10_32.txt","499.8",500.3,20));//

        //43 e
        originDataList.add(new OriginData("./src/algo/6mindata/check_kangfu_filter_gsensor_2024-12-25_17_25_37.txt"
                ,"./src/algo/6mindata/check_kangfu_filter_gsensor_2024-12-25_17_25_37.txt",
                "./src/algo/6mindata/check_kangfu_filter_gsensor_2024-12-25_17_25_37.txt","499.8",500.3,20));//

    }
}
